package cn.ts.repository;

import cn.ts.utils.ILimiterRepository;
import org.redisson.api.RMap;
import org.redisson.api.RedissonClient;
import org.springframework.stereotype.Repository;

import javax.annotation.Resource;

/**
 * @author: ts
 * @description
 * @create: 2025/3/10 16:13
 */
@Repository
public class redisRepository implements ILimiterRepository {

    @Resource
    private  RedissonClient redissonClient;


    // 添加用户到黑名单，并增加次数
    public void addToBlacklist(String userId, int count) {


    }

    // 获取用户的违规次数
    // 获取用户的违规次数
    public Long getViolationCount(String userId) {
        RMap<String, Long> blacklistMap = redissonClient.getMap("blacklist");
        return blacklistMap.getOrDefault(userId, 0L);
    }
    // 增加用户的违规次数
    public void incrementViolationCount(String userId) {
        RMap<String, Long> blacklistMap = redissonClient.getMap("blacklist");
        // 使用 merge 方法确保原子操作
        blacklistMap.merge(userId, 1L, Long::sum);
    }

    // 从黑名单中移除用户
    public void removeFromBlacklist(String userId) {
        RMap<String, Number> blacklistMap = redissonClient.getMap("blacklist");
        blacklistMap.remove(userId);
    }
}
